home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 46 / Amiga Format CD46 (1999-10-20)(Future Publishing)(GB)[!][issue 1999-12].iso / -in_the_mag- / synth_studies / resgrep03b / source / res.h < prev    next >
Text File  |  1999-09-15  |  3KB  |  100 lines

  1. /*************************************************************************/
  2. /* MacResourcen                              */
  3. /* Alle dokumentierten Strukturen des Resource Managers.         */
  4. /*-----------------------------------------------------------------------*/
  5. /* 05.02.1992 Andre   geschrieben.                     */
  6. /* 08.02.1992 Andre   Aufgeraeumt und umbenannt.             */
  7. /* 22.03.1992 Andre   an C++ angepaßt.                     */
  8. /*************************************************************************/
  9.  
  10.              /* Die folgenden Typen muessen die angegebene     */
  11.              /* Laenge haben!                 */
  12.  
  13. typedef char  mbyte;     /* 1 Byte                     */
  14. typedef short mshort;     /* 2 Byte                     */
  15. typedef long  mlong;     /* 4 Byte                     */
  16. typedef unsigned long  Pack; /* 4 Byte gepackt!          */
  17.  
  18.              /* Eine Reference List.             */
  19. typedef struct MacResIDStr
  20. {
  21.    mshort    ID;           /* Die ID dieser Resource.         */
  22.    mshort    NameOffset;       /* Der Offset zum Namen (oder -1).        */
  23.    mlong     Attrs:8;           /* Die Attribute dieser Resource.     */
  24.    mlong     DataOffset:24;    /* Dort beginnt die Resource.         */
  25.    mlong     privat;
  26. }
  27. MacResID;
  28.  
  29.              /* Ein Resource Type.                 */
  30. typedef struct MacResTypeStr
  31. {
  32.    Pack      theResType;     /* Der Type der Resource.         */
  33.    mshort    NumberOfResRef;     /* Anzahl der Res.Referenzen dieses Typs*/
  34.    mshort    RefListOffset;     /* Hier faengt das Feld der Refs an.     */
  35. }
  36. MacResType;
  37.  
  38.              /* Die Typeliste.                 */
  39. typedef struct MacResFileStr
  40. {
  41.    mshort    Number;         /* Anzahl der Feldeintraege.         */
  42.    MacResType    Type[1];     /* Das Datenfeld.             */
  43. }
  44. MacResFile;
  45.  
  46.              /* Der Header einer MAC Resource Datei.     */
  47. typedef struct MacResHeaderStr
  48. {
  49.    mlong     DataOffset;       /* Da fangen die Daten im Resourcefile an.*/
  50.    mlong     MapOffset;        /* Da faengt die Resourcemap an.      */
  51.    mlong     DataLength;       /* Laenge der Daten.             */
  52.    mlong     MapLength;        /* Laenge der Resourcemap.         */
  53. }
  54. MacResHeader;
  55.  
  56.              /* Das Aussehen der Resource Daten.         */
  57. typedef struct MacResDataStr
  58. {
  59.    mlong     Length;           /* Die Laenge der Daten.          */
  60.    mbyte     Data[1];           /* Die Daten in Feld [0,..,mrd_Length-1]. */
  61. }
  62. MacResData;
  63.  
  64.              /* Die Recource Map.                 */
  65.              /* Private Felder nicht benutzen!         */
  66. typedef struct MacResMapHeaderStr
  67. {
  68.    MacResHeader privat1;
  69.    mlong     privat2;
  70.    mshort    privat3;
  71.    mshort    Attrs;         /* Die Attribute des Files.         */
  72.    mshort    TypeListOffset;     /* Offset zur Liste der Resourcetypen.  */
  73.    mshort    NameListOffset;     /* Offset zur Liste der Namen.      */
  74. }
  75. MacResMapHeader;
  76.  
  77.              /* Die Fileattribute:                 */
  78. #define resSysHeap    64
  79. #define resPurgeable  32
  80. #define resLocked     16
  81. #define resProtected   8
  82. #define resPreload     4
  83. #define resChanged     2
  84.  
  85.              /* Die Resourcetype Attribute:           */
  86. #define mapReadOnly   128
  87. #define mapCompact     64
  88. #define mapChanged     32
  89.  
  90.              /* Dann noch die Fehlercodes:              */
  91. #define resNotFound    -192
  92. #define resFNotFound   -193
  93. #define addResFailed   -194
  94. #define rmvResFailed   -195
  95.  
  96. #define resNoMemory    -196
  97. #define resToManyFiles -197
  98. #define resFileCorrupted -198
  99.  
  100.